from collections import deque


def queue():
    # 该方法为双端队列
    queue = deque()
    # 向末尾添加
    queue.append(1)
    # 向队列头添加
    queue.appendleft(1)

    # 获取即将出队的元素 O(1)
    temp1 = queue[0]
    # 获取队尾元素 O(1)
    temp2 = queue[-1]
    temp2 = queue[len(queue) - 1]

    # 删除即将出队的元素 O(1)
    # 会返回元素
    temp2 = queue.popleft()
    # 删除最右元素
    queue.pop()

    # deque每次添加删除元素时会自动计数 O(1)
    len(queue) == 0

    # deque每次添加删除元素时会自动计数 O(1)
    len(queue)

    # 变删除边遍历
    while len(queue) != 0:
        temp = queue.popleft()
        print(temp)


if __name__ == '__main__':
    queue